The present invention generally relates to the field of computer, and more specifically, to an apparatus and a method for validating application deployment topology in cloud computing environment.
PaaS is the abbreviation for Platform-as-a-Service, and it is a business model in which a server platform is provided as a service. A service providing a software program through network is called SaaS (Software as a Service), whereas in the cloud computing era, providing a corresponding server platform or developing environment as a service is PaaS. The service provided by PaaS differs from other services in that PaaS provides a basic platform instead of a certain application. In traditional concept, a platform is the basis of providing services to the outside. In general, as the basis of application system deployment, a platform is built and maintained by an application service provider. However, PaaS subverts this concept. A special platform service provider builds and operates the basic platform, and provides the platform to an application system operator as a service.
A developer (a PaaS' user) may deploy complicated topology to install middleware, applications, cloud services, etc. The developer utilizes, for example, an integrated developing environment to create a topology model which corresponds to a kind of deployment of an application in a hardware server. FIG. 4 shows an example of correspondence between a deployment topology model and hardware servers. Three Virtual Machines (VMs) are shown in the upper part of FIG. 4, wherein VM Custom Node is deployed on two servers in actual deployment in the lower part of FIG. 4.
In general, it is necessary to run script packages on respective VMs to complete deployment. FIG. 5 shows a view of an example of running script packages on three VMs to deploy applications. In FIG. 5, in the VM Dmgr (Deployment Manager), script packages “1. Install Application Server Binaries”, “2. Create Web Server” and “4. Add Member to Cluster” are to be executed; in the VM Custom Node, script packages “1. Install Application Server Binaries” and “3. Add Custom Node to Dmgr” are to be executed; and in the VM HTTP server, a script package “1. Install HTTP Server Binaries” is to be executed. In FIG. 5, for example, execution of the script package 2 in the VM Dmgr needs the output parameter IHS_IP of the script package 1 in the VM HTTP server as its input parameter, execution of the script package 3 in the VM Custom Node needs four output parameters (DMGR_IP, DMGR_PORT, DMGR_USERNAME, DMGR_PASSWORD) of the script package 2 in the VM Dmgr as its input parameters, and the script package 4 in the VM Dmgr needs to be executed after the script package 3 in the VM Custom Node. Therefore, these script packages need to be executed in a specific order. In FIG. 5, dashed line arrows are used to show the execution order of script packages across VMs, and bubbles that branch from dashed line arrows are used to show data dependency between script packages.
A user sets up said order and data dependency during design period. However, at present, said order and data dependency can only be validated at runtime, e.g., after various VMs are launched. That is, at present, validation of said order and data dependency needs to be performed in actual deployment. However, it takes a long time to validate the order and data dependency of script packages of VMs at runtime. For example, deployment of BPM (Business Process Management) Pattern needs to take about 1 hour and 20 minutes, and it has complicated execution order and data dependency. When being deployed, some script packages may not export necessary data, so other script packages that depend on these script packages will run to error. The user needs to find out the reason for the failure from a large volume of log files and multiple VMs, which is very time-consuming and fussy work. Further, in a case where the error has been found, it is necessary to perform time-consuming deployment again after correcting the error (e.g., modifying the script package). Also, in this process, other errors may occur. In brief, at present, application deployment performed by the PaaS' user is very time-consuming.